星巡研究院

渗透视角下的C语言

### 10.1.1 干什么 `netdb.h` 提供主机名到地址的解析能力:把主机名与服务名转换为可直接交给 `connect` 的 `addrinfo`(address information,候选地址链表节点)结构链。它内部由 glibc 解析器完成名称查询,覆盖本地文件与网络 DNS 两条路径。 它的职责边界是这样的。glibc 库函数,自身无独立系统调用,但内部会经套接字发起网络查询。它只负责名称到地址的换算,不建立连接、不校验目标可达。文本地址与二进制之间的换算由 `arpa/inet.h` 承担,地址结构布局由 `netinet/in.h` 定义。 DNS(Domain Name System,域名系统,把主机名映射为 IP 地址的分布式查询服务)在这里作为外部依赖出现:本地无记录时,解析器按配置向 DNS 服务器发起查询。 ### 10.1.2 谁在调 * curl、浏览器、SSH 客户端把主机名交给 `getaddrinfo` 取得可连接地址后再发起 `connect`。 * 名称枚举类工具对候选名称逐个调用 `getaddrinfo`,解析成功即记录
这是进阶内容

升级理论包获取本册全部章节,从机器本质系统入门